Skip to content

build wheels with CUDA 13.0.x, test wheels against mix of CTK versions#973

Open
jameslamb wants to merge 6 commits intoNVIDIA:release/26.04from
jameslamb:test-older-ctk
Open

build wheels with CUDA 13.0.x, test wheels against mix of CTK versions#973
jameslamb wants to merge 6 commits intoNVIDIA:release/26.04from
jameslamb:test-older-ctk

Conversation

@jameslamb
Copy link
Member

Description

Contributes to rapidsai/build-planning#257

  • builds CUDA 13 wheels with the 13.0 CTK
  • ensures wheels ship with a runtime dependency of nvidia-nvjitlink>={whatever-minor-version-they-were-built-against}

Contributes to rapidsai/build-planning#256

  • updates wheel tests to cover a range of CTK versions (we previously, accidentally, were only testing the latest 12.x and 13.x)

Contributes to rapidsai/build-planning#205

Issue

N/A

Checklist

  • I am familiar with the Contributing Guidelines.
  • Testing
    • New or existing tests cover these changes
  • Documentation
    • The documentation is up to date with these changes

@jameslamb jameslamb added non-breaking Introduces a non-breaking change improvement Improves an existing functionality labels Mar 18, 2026
@copy-pr-bot
Copy link

copy-pr-bot bot commented Mar 18, 2026

Auto-sync is disabled for draft pull requests in this repository. Workflows must be run manually.

Contributors can view more details about this message here.

@jameslamb
Copy link
Member Author

/ok to test

@jameslamb jameslamb changed the title WIP: build wheels with CUDA 13.0.x, test wheels against mix of CTK versions build wheels with CUDA 13.0.x, test wheels against mix of CTK versions Mar 18, 2026
@jameslamb jameslamb requested a review from gforsyth March 18, 2026 20:15
@jameslamb jameslamb marked this pull request as ready for review March 18, 2026 20:15
@jameslamb jameslamb requested a review from a team as a code owner March 18, 2026 20:15
@coderabbitai
Copy link

coderabbitai bot commented Mar 18, 2026

📝 Walkthrough

Walkthrough

Updates GitHub Actions workflows to use main branch versions instead of python-3.14 tags, adds pip constraint handling to CI test scripts, expands CUDA version support matrices in dependencies.yaml, and refactors pyproject.toml to use cuda-toolkit with specific NVIDIA components instead of individual packages.

Changes

Cohort / File(s) Summary
GitHub Actions Workflow Updates
.github/workflows/build.yaml, .github/workflows/pr.yaml
Updated action references from python-3.14 tag to main branch across multiple jobs, removing version pin and adopting latest main-stable definitions. Control flow and error handling unchanged.
CI Test Script Enhancements
ci/test_self_hosted_service.sh, ci/test_wheel_cuopt.sh, ci/test_wheel_cuopt_server.sh
Added pip constraint generation via rapids-generate-pip-constraints, updated install commands with --prefer-binary and --constraint flags, extended wheel selection with test extras and additional packages (cuopt_sh_client, libcuopt wheels).
CUDA Dependencies Configuration
dependencies.yaml
Replaced CUDA 12.0/12.4 with expanded versions (12.2, 12.5, 12.8, 12.9, 13.0, 13.1); added new requirements-output block with cuda_version-specific matrices and error handling for unsupported CUDA values; refactored CUDA 13 dependencies using anchors (&ctk_cu13, &cudss_cu13, &nvjitlink_cu13) and introduced nvjitlink/cudss components.
Project Dependencies
python/libcuopt/pyproject.toml
Replaced individual NVIDIA runtime packages (nvidia-cublas, nvidia-cudart, nvidia-cudss, nvidia-curand, nvidia-cusolver, nvidia-cusparse, nvidia-nvjitlink, nvidia-nvtx) with cuda-toolkit [cublas,cudart,curand,cusolver,cusparse,nvtx]==13.\*, nvidia-cudss-cu13, and nvidia-nvjitlink >=13.0,<14.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Title check ✅ Passed The title directly and clearly summarizes the main changes: building CUDA 13.0.x wheels and testing against multiple CTK versions, which aligns with the primary objectives of the pull request.
Description check ✅ Passed The description is well-related to the changeset, providing context for the three main objectives: CUDA 13 wheel builds, expanded CTK version testing, and workflow branch updates.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
📝 Coding Plan
  • Generate coding plan for human review comments

Comment @coderabbitai help to get the list of available commands and usage tips.

coderabbitai[bot]

This comment was marked as resolved.

@rgsl888prabhu rgsl888prabhu changed the base branch from main to release/26.04 March 19, 2026 16:20
@rgsl888prabhu
Copy link
Collaborator

@jameslamb I have moved this 26.04 release branch, please change it if it is not meant for that.

@jameslamb
Copy link
Member Author

@jameslamb I have moved this 26.04 release branch, please change it if it is not meant for that.

Thanks! Yep I intended this for 26.04, there just wasn't a release/26.04 branch yet when I opened it.

@jameslamb
Copy link
Member Author

@rgsl888prabhu is there an issue or PR tracking some of these test segfaults I'm seeing?

e.g.

[ RUN      ] level0_retail/retail_float_test_t.CVRPTW_Retail/4
ROUTING_TEST: /tmp/conda-bld-output/bld/rattler-build_libmps-parser/work/cpp/src/routing/local_search/vrp/vrp_execute.cu:466: bool cuopt::routing::detail::execute_vrp_moves(solution_t<i_t, f_t, REQUEST>&, move_candidates_t<i_t, f_t>&, i_t) [with i_t = int; f_t = float; cuopt::routing::request_t REQUEST = cuopt::routing::request_t::VRP]: Assertion `cost_before - cost_after > EPSILON&& "Cost should improve!"' failed.
./ci/run_ctests.sh: line 24:  5951 Aborted                 (core dumped) "${gt}" "$@"

(conda-cpp-tests)

The C++ tests should be totally unrelated to changed in this PR, so I suspect there are some other issues.

I see those issues in other PRs here too.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

improvement Improves an existing functionality non-breaking Introduces a non-breaking change

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants